אני מנסה לבנות מחלקת משתמשים. המשתמשים מאוחסנים כמובן במסד הנתונים MYSQL.
העובדה הזאת גורמת להרבה קודי mysqli להיות קשורים במחלקה עצמה.. ואני לא יודע עד כמה זה יעיל. חצי מהמחלקה בערך זה רק קודים שקוראים מהמסד.. זאת הדרך לכתוב מחלקה כזאת? או שיש דרך אחרת שגורמת למינימום התקשרות עם המסד?
4 תשובות
כשצריכים לעבוד עם המסד - עובדים עם המסד. אין עם זה בעיה.
המפתח הוא לשאוף לכמה שפחות פתיחות וסגירות חיבור..תוודא שאתה פועל על חיבור בודד ורציף לDB ראה ערך סינגלטון
איפה שאפשר לצמצם שאילתות למנוע המון טרנזקציות
תן כמה שורות קודות שיהיה אפשר לראות מה הולך קשה לדמיין את זה
השאלה לא כל כך ברורה.
יש לך מחלקה שמייצגת משתמש ? יש לה מאפיינים? יש לה פעולות?
אם הפעולות האלה קשורות למסד (לעדכן סיסמה למשל) אז הפעולה של העדכון תשתמש במחלקה שאחראית להתקשרות עם מסד ותשלח את השאילתה המתאימה ולכן במחלקה של המשתמש יהיו פעולות לעבודה עם מסד.
דרך אחרת היא להשתמש ב ORM, כלי נוסף שיאפשר לך במחלקה של המשתמש רק לכתוב אילו מאפיינים יש למשתמש ובאיזו טבלה שמורים המשתמשים וברגע שתעדכן את אחד המאפיינים האלה - הכלי יידע ליצור לבד את השאילתות ולבצע אותה על המסד בלי שאתה תצטרך לכתוב שאילתות בעצמך.
כמה מה-ORMים הפופולארים יותר:
redbean אחת המגניבות
propel
doctrine orm
php active record שבה אני משתמש כחלק מ yii
אם כל זה נראה לך מסובך כרגע ואתה לא רוצה לעבור לשימוש בפריימוורק וכלים אחרים כלשהם,
כמו שעידן אמר, אין שום בעיה בזה שפעולות על משתמש ייגשו למסד נתונים.